|
Seaside is a free and open-source web application framework for developing web applications in Smalltalk. Seaside provides a component architecture in which web pages are built as trees of individual, stateful components, each encapsulating a small portion of a page. Seaside uses continuations to model multiple independent flows between different components.〔(Seaside — a Multiple Control Flow Web Application Framework )〕 Seaside is a continuation-based web application framework〔(IBM DeveloperWorks: Crossing borders: Continuations, Web development, Java programming )〕 based on the ability to manipulate the execution stack of some implementations of Smalltalk. ==Key features== Seaside's implementation of continuations was an initial point of interest in its first several years of existence following its 2002 release. Continuations provide a mechanism for rollback and resumption; a useful provision for the web browser environment in which "refresh" and "back" buttons may interrupt the flow of processing. Continuation servers give the developer the ability to maintain state on the server in a scalable manner.〔(Seaside: A Flexible Environment for Building Dynamic Web Applications )〕 The subsequent improvement of web browser implementations of JavaScript since 2002 has made the continuations aspect of Seaside less significant, by allowing the client browser to better keep track of state. A distinctive feature of Seaside is its integrated development environment, providing access to development tools and debugging support within an application. In development-mode, unhandled errors are reported to the web page; developers can access and alter the program code and state directly from the web page, allowing bug identification and fixing process to occur within an integrated development environment.〔(Debugging Seaside Applications )〕 A Seaside application is a collection of interacting components. Each component stores state across page views and can "render" itself to the HTML stream. Thus, it is straightforward to write a component once and then reuse it elsewhere in an application. Seaside also supports the notion of tasks, which allow the programmer to describe the high-level logic of component interaction. Seaside is not template-oriented, and does not offer the generation or use of HTML templates; HTML markup is generated programmatically. (The Seaside-based Pier content-management framework does offer wiki-markup syntax for templating.) Seaside uses callbacks on closures to specify actions to be taken when clicking on a link or submitting a form. The developers and users of Seaside argue that this helps enforce separation of structure (markup) from content and presentation (CSS).〔(Avi Bryant explains why Seaside doesn't use templates )〕 Seaside's combination of components, callbacks, and closures can significantly reduce the semantic gap between a complex workflow and its representation in code.〔(Web Application Frameworks: A Comparative Study )〕 Seaside supports Ajax through integration with script.aculo.us and jQuery. Seaside also supports Comet-style server-push technology.〔(Screencast: Seaside Comet Chat Application )〕 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Seaside (software)」の詳細全文を読む スポンサード リンク
|